/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.pw.client;

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.dom.client.Style.Unit;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.ui.Anchor;
import com.google.gwt.user.client.ui.HTMLPanel;
import com.google.gwt.user.client.ui.RootLayoutPanel;
import com.google.gwt.user.client.ui.SplitLayoutPanel;
import com.google.gwt.user.client.ui.StackPanel;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.DecoratorPanel;

/**
 * Ejemplo de como crear una interfaz gráfica. Las interfaces se construyen con
 * varios Widget que se agrupan en un Composite. En este ejemplo los componentes
 * se colocan verticalmente.
 */
public class InterfazEntryPoint implements EntryPoint {
    
    @Override
    public void onModuleLoad() {
        RootLayoutPanel rootLayoutPanel = RootLayoutPanel.get();        
        
        SplitLayoutPanel splitLayoutPanel = new SplitLayoutPanel();
        rootLayoutPanel.add(splitLayoutPanel);
        rootLayoutPanel.setWidgetLeftWidth(splitLayoutPanel, 0.0, Unit.PX, 100, Unit.PCT);
        rootLayoutPanel.setWidgetTopHeight(splitLayoutPanel, 0.0, Unit.PX, 100, Unit.PCT);
        
        HTMLPanel panelIzquierdo = new HTMLPanel("");
        splitLayoutPanel.addWest(panelIzquierdo, 135.0);
        panelIzquierdo.setSize("135px", "100%");
        
        final HTMLPanel panelDerecho = new HTMLPanel("");
        splitLayoutPanel.add(panelDerecho);
        panelDerecho.setSize("100%", "100%");
        
        VerticalPanel clienteOpciones = new VerticalPanel();
        VerticalPanel proveedorOpciones = new VerticalPanel();
        VerticalPanel productoOpciones = new VerticalPanel();
        
        Anchor nuevoCliente = new Anchor("Nuevo");
        clienteOpciones.add(nuevoCliente);
        nuevoCliente.addClickHandler(new ClickHandler() {
            @Override
            public void onClick(ClickEvent event) {
                panelDerecho.clear();
                NuevoCliente nc = new NuevoCliente();                
                panelDerecho.add(nc.getDistribucion());
                panelDerecho.add(null);
            }
        });
        
        Anchor listarCliente = new Anchor("Listar");
        clienteOpciones.add(listarCliente);
        listarCliente.addClickHandler(new ClickHandler() {
            @Override
            public void onClick(ClickEvent event) {
                panelDerecho.clear();                
                panelDerecho.add(null);
            }
        });
        
        Anchor nuevoProveedor = new Anchor("Nuevo");
        proveedorOpciones.add(nuevoProveedor);
        nuevoProveedor.addClickHandler(new ClickHandler() {
            @Override
            public void onClick(ClickEvent event) {
                panelDerecho.clear();
                panelDerecho.add(null);
            }
        });
        
        Anchor listarProveedor = new Anchor("Listar");
        proveedorOpciones.add(listarProveedor);
        listarProveedor.addClickHandler(new ClickHandler() {
            @Override
            public void onClick(ClickEvent event) {
                panelDerecho.clear();
                panelDerecho.add(null);
            }
        });        
        
        Anchor nuevoProducto = new Anchor("Nuevo");
        productoOpciones.add(nuevoProducto);
        nuevoProducto.addClickHandler(new ClickHandler() {
            @Override
            public void onClick(ClickEvent event) {
                panelDerecho.clear();
                panelDerecho.add(null);
            }
        });        
        
        Anchor listarProducto = new Anchor("Listar");
        productoOpciones.add(listarProducto);
        listarProducto.addClickHandler(new ClickHandler() {
            @Override
            public void onClick(ClickEvent event) {
                panelDerecho.clear();
                panelDerecho.add(null);
            }
        });        
        
        
        StackPanel panel = new StackPanel();        
        panel.add(clienteOpciones, "Cliente", false);        
        panel.add(proveedorOpciones, "Proveedor", false);        
        panel.add(productoOpciones, "Producto", false);
        panel.setSize("400px", "200px");
        panel.addStyleName("nav-panel");
        
        
        panelIzquierdo.add(panel);
        
    }
}
